In the field of communications, various types of systems use algorithms that depend on a signal-to-noise ratio (SNR) estimate for proper operation. Code division multiple access (CDMA) systems, such as time division duplex CDMA (TDD/CDMA) and time division synchronous CDMA (TDSCDMA) and frequency division duplex CDMA (FDD/CDMA) and CDMA 2000, use SNR estimation for power control to maintain the required link quality while using the minimum transmitted power. An asymmetric digital subscriber loop (ADSL) system uses SNR for the bit allocation algorithm to select the maximum transmission data rate. In turbo decoders, both the determined signal power and noise power are required. Rate adaptive transmission systems often use SNR to dynamically adapt the modulation scheme or the coding rate.
Several algorithms are known for performing SNR estimation. One such algorithm, the received data-aided (RXDA) estimation, is based on the following equation:
                    SNR        =                                            (                                                1                  N                                ⁢                                                      ∑                                          k                      =                      1                                        N                                    ⁢                                                                                r                      k                                                                                                      )                        2                                                              1                N                            ⁢                                                ∑                                      k                    =                    1                                    N                                ⁢                                  r                  k                  2                                                      -                                          (                                                      1                    N                                    ⁢                                                            ∑                                              k                        =                        1                                            N                                        ⁢                                                                                        r                        k                                                                                                                  )                            2                                                          Equation        ⁢                                  ⁢        1            where r is the received signal vector and N is the number of sample points read by the receiver for the vector r.
Another known algorithm is the transmitted data-aided (TXDA) algorithm, which is represented by the equation:
                    SNR        =                                            (                                                1                  N                                ⁢                                                      ∑                                          k                      =                      1                                        N                                    ⁢                                                            r                      k                                        ⁢                                          a                      k                                                                                  )                        2                                                              1                                  N                  -                  3                                            ⁢                                                ∑                                      k                    =                    1                                    N                                ⁢                                  r                  k                  2                                                      -                                          1                                  N                  ⁡                                      (                                          N                      -                      3                                        )                                                              ⁢                                                (                                                            ∑                                              k                        =                        1                                            N                                        ⁢                                                                  r                        k                                            ⁢                                              a                        k                                                                              )                                2                                                                        Equation        ⁢                                  ⁢        2            
A third known algorithm for SNR estimation is represented as:
                    SNR        =                              N            2                    ⁢                                    (                                                ∑                                      k                    =                    1                                                        N                    /                    2                                                  ⁢                                                                            (                                                                                                                              r                                                                                          2                                ⁢                                k                                                            -                              1                                                                                                                                -                                                                                                        r                                                          2                              ⁢                                                                                                                          ⁢                              k                                                                                                                                                    )                                        2                                                                              r                                                                        2                          ⁢                          k                                                -                        1                                            2                                        +                                          r                                              2                        ⁢                        k                                            2                                                                                  )                                      -              1                                                          Equation        ⁢                                  ⁢        3            
The algorithms for Equations 1 and 3 are performed blind without any pilot signal. In contrast, the TDXA algorithm uses a pilot signal with known training sequences, which provides enhanced performance. The drawback of TDXA is that additional equipment is required to process the training sequence. Although the RXDA and Equation 3 algorithms work well when the SNR is high, their performance suffers at low and negative SNRs, where they are known to have a high bias. This is problematic for various communication systems. For example, turbo code applications are known to experience negative ratios of symbol energy to noise density. In CDMA systems, the chip energy to noise density is often negative. Hence, there is a need to develop a blind SNR estimation method that works well at low and negative values without the benefit of a training sequence.